package com.projectexercise.book.mapper;

import com.projectexercise.book.model.BookInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Mapper
public interface BookMapper {
    @Insert("insert into book_info " +
            "(book_name, author, count, price, publish, `status` )" +
            " values (#{bookName}, #{author}, #{count}," +
            " #{price}, #{publish}, #{status})")
    Integer insertBook(BookInfo bookInfo);

    @Select("select * from book_info where status != 0 order by id limit #{offset}, #{limit}")
    List<BookInfo> queryBookByPage(@Param("offset") Integer offset, @Param("limit") Integer limit);

    @Select("select count(1) from book_info where status != 0")
    Integer count();

    @Select("select * from book_info where id = #{bookId}")
    BookInfo queryBookById(Integer bookId);

    Integer updateBookInfo(BookInfo bookInfo);

    Integer batchDeleteBook(@RequestParam @Param("ids") List<Integer> ids);
}
